#pragma once

enum class StrategyTag : int
{
    NORMAL,
    LAZY,
    RELIABLE,
};

class IWriteStrategy{
public:
    IWriteStrategy() = default;
    IWriteStrategy(const IWriteStrategy&) = default;
    IWriteStrategy& operator=(const IWriteStrategy&) = default;
    IWriteStrategy(const IWriteStrategy&&) = delete;
    IWriteStrategy& operator=(const IWriteStrategy&&) = delete;
    virtual int OnWriteAt(int pos,void* data,int length) = 0;
    virtual ~IWriteStrategy() {};

};